{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 11. Sampling Methods"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "%matplotlib inline\n",
    "\n",
    "from prml.rv import Gaussian, Uniform\n",
    "from prml.sampling import metropolis, metropolis_hastings, rejection_sampling, sir\n",
    "\n",
    "np.random.seed(1234)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 11.1.2 Rejection sampling"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x112a4ccc0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "def func(x):\n",
    "    return np.exp(-x ** 2) + 3 * np.exp(-(x - 3) ** 2)\n",
    "x = np.linspace(-5, 10, 100)\n",
    "rv = Gaussian(mu=np.array([2.]), var=np.array([2.]))\n",
    "plt.plot(x, func(x), label=r\"$\\tilde{p}(z)$\")\n",
    "plt.plot(x, 15 * rv.pdf(x), label=r\"$kq(z)$\")\n",
    "plt.fill_between(x, func(x), 15 * rv.pdf(x), color=\"gray\")\n",
    "plt.legend(fontsize=15)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\ngBxjzALgT8BLg2zjJhHZLCKbq6urRxuzUj539FgL01JjEBl5pYzbjNRYOu0OSuravBiZCpT33nsP\nEWHnzp2BDsUjHiV3EbHhTOzPGGP+1v95Y0yjMabZ9f2rgE1ETljF1hjziDEmzxiTN9hqKUoFg6La\nVqYmD7xWp6dmTHJVzGg5pAoAT6plBHgc2GOM+a9B2qS72iEip7m2W+PNQJXyl45uO2UNbeSkeD7N\n70Dcte467q4CwZOe+5nAauDcXqWOF4nIGhFZ42pzJbBTRAqA+4FVxhjjo5iV8qmSujaMYcw996SY\ncJKibRzS5O6RXbt2ccEFF5CcnExMTAxz587lgQceAOCVV17h/PPPZ9KkScTHx7N06VLefPPNPq//\nyU9+QmpqKp999hl5eXlERUVx1llnceTIEaqqqrjsssuIjY1l7ty5vPPOO31em5uby+233859991H\neno6sbGxfO1rX6OhYehpmx0OB7/61a+YOXMmERERzJo1i6eeeqpPm48++ojly5cTHx9PfHw8p556\nKuvWrfPCOza0YUshjTEfAUMOPBpj/gz82VtBKRVIRTWtAExNGVtyB2fFjNa6e2bFihXMnTuXp59+\nmoiICPbt29czFfCRI0e46KKLuO2227Barbz22mtceOGFfPDBB5x55pk922htbeWmm27izjvvJCYm\nhv/4j/9g9erVREREcOGFF/Kd73yH3/zmN3zlK1+huLiY6Ojjv+O1a9cyc+ZMHn30UcrLy7nzzjv5\nxje+MWQi/u53v8tTTz3F3XffzeLFi1m/fj033HADKSkpXHLJJTQ2NnLJJZewcuVK7r777p656+vr\n/bAMozEmILclS5YYpYLR/3502Ez9wb9MZWPbmLd1x7ptZsl9670Q1eB2797t1e3Z7Q5T1dhuHA6H\nV7c7lOrqagOY7du3D9vWbrebrq4u86Uvfclcf/31PY/fc889BjDvvfdez2MPPPCAAcxPf/rTnsd2\n7dplAPPqq6/2PDZ16lSTlJRkmpqaeh57+umnjYj0vL/vvvuuAcyOHTuMMcYcOHDAiIh58skn+8S3\nevVqk5eXZ4wxZtOmTQYwjY2NI3k7hvydApuNBzlWpx9Qqp/C2laiw61jKoN0m54Wy7HmDhrbx8cE\nYg6H4epHP+WMX77Nqkc+xeHwz+hqcnIy2dnZrFmzhueee46qqqo+z5eUlHDttdeSmZlJWFgYNpuN\n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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x112dfc278>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "samples = rejection_sampling(func, rv, k=15, n=100)\n",
    "plt.plot(x, func(x), label=r\"$\\tilde{p}(z)$\")\n",
    "plt.hist(samples, normed=True, alpha=0.2)\n",
    "plt.scatter(samples, np.random.normal(scale=.03, size=(100, 1)), s=5, label=\"samples\")\n",
    "plt.legend(fontsize=15)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 11.1.5 Sampling-importance-resampling"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXcAAAD8CAYAAACMwORRAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xd8XNW16PHfGvVerGpVG3eDqwLGYCAQCJgeCDEQLgSC\nY0oSLi0J3AsXchNIXpL7QuBBgHAhMbHBoYZuDIRqcO8FNzWrWb2Xmf3+mGJJVhlJ0zRa389nPtac\n2XPOGmm8Zs86++wtxhiUUkoFF4u/A1BKKeV5mtyVUioIaXJXSqkgpMldKaWCkCZ3pZQKQprclVIq\nCGlyV0qpIKTJXSmlgpAmd6WUCkKh/jpwSkqKyc/P99fhlVJqVNqwYcMRY0zqYO38ltzz8/NZv369\nvw6vlFKjkogUutNOyzJKKRWENLkrpVQQ0uSulFJBSJO7UkoFoUGTu4hEishXIrJFRHaIyAN9tBER\neURE9onIVhGZ551wlVJKucOd0TLtwJnGmCYRCQM+FZG3jTFru7U5D5jsuJ0EPO74VymllB8MmtyN\nfammJsfdMMet9/JNFwN/dbRdKyKJIpJpjCnzaLRKqT41NDRQWVlJZ2env0NRIxAWFkZaWhrx8fEj\n3pdb49xFJATYAEwCHjPGfNmrSRZQ3O1+iWObJncVtMrqW/lsXzXfmZuFxSJ+i6OhoYGKigqysrKI\niopCxH+xqOEzxtDa2kppaSnAiBO8W8ndGGMF5ohIIvCKiBxvjNk+1IOJyFJgKUBubu5Qn65UwNha\nUscNz62nqrGd6PAQFp+Q6bdYKisrycrKIjo62m8xqJETEaKjo8nKyuLw4cMjTu5DGi1jjKkDPgTO\n7fVQKZDT7X62Y1vv5z9pjCkwxhSkpg569axSAendHeVc8ecvCA+xkDcumj++/zU2m/8Wmu/s7CQq\nKspvx1eeFRUV5ZHymjujZVIdPXZEJAo4G9jdq9nrwL85Rs0sAOq13q6C0ZpdFSxbvoGpGfG8cstC\nbj97CnsqGnlru3/f7lqKCR6e+lu603PPBD4Uka3AOmC1MeYNEVkmIsscbd4CDgD7gKeAmz0SnVIB\n5h8bSkiPi2TljQtIi4vkglnjmZQWyx/f/xqrH3vvSvXmzmiZrcDcPrY/0e1nA9zi2dCUCixdVhuf\n7jvC4uMziQoPASDEIvz0rMn8eMUm3txWxkWzx/s5SqXs9ApVpdy0ubiOxrYuTp/a83zR+SdkMjkt\nlkfWaO9dBQ5N7kq56eO9VVgETjkupcd2i0W45ZuT2FfZxMaiWj9FFzyuvfZakpKS+OMf/8iKFSu4\n7rrrejxujGHOnDk899xzbu/z1ltv5YYbbvBwpIFNk7tSbvrX3irm5CSSEB12zGOnTrYn/E2a3Eek\ntraWd999l6effprly5dzyy23cP311/do8+KLL1JTU8NVV13l9n7vvPNOnn/+efbt2+fpkAOWJnel\n3FDT3MHW0npOn5LW5+MpsRHkJkezqajOx5EFl6SkJMrLy7nssstYt24dNTU1nHbaaT3aPPLII1xz\nzTWEhR37Iduf/Px8Tj31VB5//HFPhxywNLkr5YZPvq7CGDhtSkq/bebmJmpyH6Hk5GT+8z//k6uv\nvppx48aRnJzMj370I9rb2wHYt28fn3/+OZdffnmP573wwguISJ+3hoYGAC677DKef/55bDabz1+X\nP2hyV8oNH+89QmJ0GLOyE/ttMzcnkfKGNsrqW30YWfAoKiqitraW//mf/yE5OZlVq1Zx22238eST\nT/LYY48BsGbNGmJiYpg9e3aP55522ml88cUXrtubb75JcnIyixcvdl3puXDhQioqKti2bZvPX5s/\n+G0NVaVGC2MMH39dxamTUggZYA6ZublJAGwqqiPzBL1idKi2bNkC2E9+PvzwwwCceeaZfPzxx7zz\nzjvcfvvtbNiwgenTp2Ox9OyXZmZmkplpnwKioaGBs846i+OPP55Vq1a52sycOZOQkBC++uqrYz4c\ngpEmd6UGsauskarGdk6fMvCUGdMz4wkPtbCpqNavc80APPDPHew83OCXY88YH8/9F84c8vO2bNlC\ndHQ0d911V4/tU6ZM4auvvgKgvLyclJT+S2PNzc0sXrwYi8XCG2+80WO+ndDQUBITEykvLx9ybKOR\nJnelBvHx11UAnDZIcg8PtXBCVoLW3Ydpy5YtnHbaaYwbN67H9vLycsaPt18c1tbW1u8EaW1tbVx0\n0UU0NzfzwQcfEBcXd0ybiIgI2traPB98ANLkrtQgtpfWk50URXp85KBt5+Yk8re1hXR02QgP9d8p\nreH0nP1ty5YtLFq0qMe2xsZGPvjgAx54wL4AXHJycp89787OTi677DLKysr417/+RVJSUp/HqKur\nIzk52fPBByA9oarUIPZWNDIt49heYF/m5ibR3mVjd7l/SiKjVXNzM/v372f//v09tj/yyCOA/cIm\n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\n2WcTG3v0orVLL70UYwzr1q3rM+Y1a9ZgsVi49NJL6erqct3OOussNm/ejNVq5bjjjiM2NparrrqK\n1157zTc9dgdN7kr1UlTdQk5S9LAmDOvNOWLm4CgpzVQ3d7ChsJYum2FDYS3VzR0+Oa7FYuG9994j\nIyOD66+/noyMDBYtWsSmTZuw2WxcdNFFfP755zz44IN8+OGHrFu3jvPOO4+2tp7DTOPi4rBYjqa1\n8PBwABITE4/Z1vu5aWlpPe5HR0cTGxvb73J+R44cwWq1kpCQQFhYmOt23XXX0dXVRVlZGUlJSaxe\nvZrOzk6uuOIKUlNTOf/88zlw4MDwf1lu0mX2lOqlqKZlxPV2J9dwyCNNzBgf75F9elNKbDjz85LY\nUFjL/LwkUmLDfXbsadOm8dJLL9HZ2cknn3zCz372M84//3w++ugjNm3axNtvv825557rat/a2urR\n4/f+ttDS0kJTUxOZmZl9tk9OTiY0NJTPPvusxweKk/PDYsGCBbzzzju0trby/vvvc/vtt3PVVVex\ndu1aj8bfmyZ3pboxxlBU3UJBXpJH9pfrGHFTXOPZROQtIsKKGxdQ3dxBSmz4iC7iGq6wsDDOPPNM\nVxJ09pwjIiJcbQoLC/nss8/cXlTbHatXr6apqclVmnnllVcQEQoKCvpsf+aZZ2K1Wqmvr+fss88e\ndP9RUVFceOGFbN++nYceeshjcfdHk7tS3dS2dNLY3kXuMBbo6EtcZBiJ0WEU17Z4ZH++YLEIqXER\ngzf0oK1bt3LnnXfyve99j4kTJ1JbW8tvfvMbZs+ezYIFC8jOzuaOO+7gl7/8JY2Njdx///1kZXl2\nFpSoqCjOP/987rrrLsrKyrjrrru49NJLmTFjRp/tp06dyrJly1iyZAl33303BQUFtLW1sWPHDvbu\n3cvTTz/Nm2++yTPPPMMll1xCbm4upaWl/PnPf+5xDsBbNLkr1U1htb02PtIx7t3lJEVTXDN6krs/\nZGRkkJ6ezq9+9SsOHz5MYmIi3/zmN/nNb35DREQEL7/8MrfccguXX3452dnZ3HvvvXz00UcenQpg\nyZIlxMXFccMNN9DU1MRFF13E448/PuBzHnvsMaZMmcJTTz3FfffdR3x8PDNmzOCGG24A7CdvRYR7\n7rmHyspKUlNTueCCC/j1r3/tsbj7I8ZPw9ELCgrM+vXr/XJspfrz2uZSfrpyM6v//TQmj2BGyO5u\n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\nV0qpIPT/AfxM7TcvoPpeAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x112f83f60>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "samples = sir(func, rv, n=100)\n",
    "plt.plot(x, func(x), label=r\"$\\tilde{p}(z)$\")\n",
    "plt.hist(samples, normed=True, alpha=0.2)\n",
    "plt.scatter(samples, np.random.normal(scale=.03, size=(100, 1)), s=5, label=\"samples\")\n",
    "plt.legend(fontsize=15)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 11.2 Markov Chain Monte Carlo"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXcAAAD8CAYAAACMwORRAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xd8W/W9//HXR7K8lzwSO55kJ0BCEgMhEKBQKCsECqWB\nNmW1lAItvWV03N+FFm5bOu5tS6HMUuiFJpBCKS0zrEIJkMRJnEl2vOIV7z2k7+8PSY7teMi2ZMny\n5/l4+BHr6Oicj2Xnfb76nu/5HjHGoJRSKrRYAl2AUkop39NwV0qpEKThrpRSIUjDXSmlQpCGu1JK\nhSANd6WUCkEa7kopFYI03JVSKgRpuCulVAgKC9SOU1JSTG5ubqB2r5RS41J+fv4RY0zqUOsFLNxz\nc3PZuHFjoHavlFLjkogUerOedssopVQI0nBXSqkQpOGulFIhSMNdKaVC0JDhLiKRIrJeRApEZIeI\n/KSfdUREHhSRfSKyVUQW+qdcpZRS3vBmtEw7cI4xpklEbMC/ReR1Y8wnPda5EJjh/joVeMT9r1JK\nqQAYMtyN61ZNTe6HNvdX39s3LQf+7F73ExFJFJF0Y0yZT6tVSvWroaGByspKOjs7A12KGgWbzcak\nSZOIj48f9ba8GucuIlYgH5gOPGyM+bTPKhlAcY/HJe5lGu4qZJXVt/LRvmq+uCADi0UCVkdDQwMV\nFRVkZGQQFRWFSOBqUSNnjKG1tZXS0lKAUQe8V+FujHEAJ4lIIvA3ETnBGLN9uDsTkZuAmwCys7OH\n+3KlgsbWkjpufGYjVY3tRNmsXDwvPWC1VFZWkpGRQXR0dMBqUKMnIkRHR5ORkcHhw4dHHe7DGi1j\njKkD3gMu6PNUKZDV43Gme1nf1z9ujMkzxuSlpg559axSQemN7WVc9djHhFst5CRH89u39+BwBu5G\n852dnURFRQVs/8q3oqKifNK95s1omVR3ix0RiQLOAz7rs9orwNfco2YWA/Xa365C0dqdFXzruU3M\nSY/n5VtP547zZ7G3solXtwX2z127YkKHr36X3rTc04H3RGQrsAFYa4z5p4jcLCI3u9d5DTgA7AOe\nAG7xSXVKBZkX80uYHBfJqm8sJjUugotPTGfm5Fh+F+DWu1J9eTNaZiuwoJ/lj/b43gC3+rY0pYJL\np8PJR/uOcMn8dCJtVgCsFuG7n5/JLc9t4h8Fh7lsQUaAq1TKRa9QVcpLm4vqaGzv4swZvc8XXXB8\nGrPT4njwnb10OZwBqk6p3jTclfLSv/ZUYrUIS6an9FpusQi3fG46B440k19YG6DqQse1116L3W7n\nd7/7HatWreK6667r9bwxhpNOOolnnnnG623edttt3HjjjT6uNLhpuCvlpX/tqWJhdiIJUbZjnjt9\nWjIAm4vrxrqskFJbW8ubb77Jk08+ybPPPsutt97KDTfc0GudF154gZqaGq655hqvt3vnnXfy3HPP\nsW/fPl+XHLQ03JXywpGmdraXNnDWzP6H8CbHRpCbHM3mIm25j4bdbqe8vJwrrriCDRs2UFNTw5ln\nntlrnQcffJCVK1disx17kB1Ibm4uZ5xxBo888oivSw5aGu5KeeHDvVUAnDVz0oDrLMi2s6moDtf4\nAjUSSUlJ/Nd//Rdf+cpXSE5OJikpiW9+85u0t7cDsG/fPtatW8eVV17Z63XPP/88ItLvV0NDAwBX\nXHEFzz33HE7nxDgvouGulBf+tbuK5Jhwjp8y8FWDC7ITqWpsp7SudQwrCx1FRUXU1tbym9/8hqSk\nJNasWcN3v/tdHn/8cR5++GEA3nnnHWJiYpg/f36v15555pl8/PHH3V+vvvoqSUlJXHTRRd1Xei5Z\nsoSKigq2bds25j9bIATsHqpKjRdOp+GDvUc4c0bKoHPILMy2A65RNZl2nQpguAoKCgDXyc8HHngA\ngHPOOYcPPviAN954g+9973vk5+czZ84cLJbe7dL09HTS011TQDQ0NHDuuedywgknsGbNmu51jj/+\neKxWK+vXrz/m4BCKNNyVGsL2w/XUNHdw1qzBp8yYlRZHpM3CpqJals2fMkbV9e8n/9jBzsMNAdn3\n3Cnx3Lvs+GG/rqCggOjoaO66665ey2fOnMn69esBKC8vJyUlpb+XA9Dc3MxFF12ExWLhn//8Z6/5\ndsLCwkhMTKS8vHzYtY1HGu5KDeHDvUcAWDpj8HC3WS3My0hkc5GOmBmJgoICzjzzTJKTk3stLy8v\nZ8oU18Gyra1twAnS2trauPTSS2lububdd98lLi7umHUiIiJoa2vzffFBSMNdqSHsOFxPbnI0KbER\nQ667ICeRP/37EO1dDiLCrGNQXf9G0nIOtIKCApYuXdprWWNjI++++y4/+YnrBnBJSUn9trw7Ozu5\n4oorKCsr41//+hd2u73ffdTV1ZGUlOT74oOQnlBVagiflTcyK+3YVmB/FmTZ6XA42V4amC6R8aq5\nuZn9+/ezf//+XssffPBBwHVhE8CsWbM4ePBgr3UcDgdXX301u3fv5u2332agGWerqqpoaWlh5syZ\nfvgJgo+23JUaRFung0NHmrnkRO/ma1+YnQjA5qJaFuX033pUx9q2bRtOp5P9+/dz3333sXTpUt56\n6y3+53/+h2effZbERNf7evrpp3PfffdRVVXVHeLf+ta3eO2113j66acpKiqiqKgIgJiYGE488cTu\nfWzcuBERYcmSJWP/AwaAhrtSg9hf1YTTwEwvW+6T4iPJSIzSK1WHqaCggPj4eF599VWuv/56fvrT\nnzJr1izWrFnD8uXLu9c7++yzSUpK4o033mDlypUYY1i9ejWtra18+ctf7rXNZcuW8corr3Q/fuON\nNzjrrLOO6dMPVRruSg1iT0UjALMmexfu4BrvvknnmBmWgoICTjzxRObNm0d+fv6A64WHh/PVr36V\n1atXs3Llyl4XKQ3G4XDw4osvdg+xnAi0z12pQewub8JmFXJTYrx+zYJsO4fr2yivnxijMnyhoKDA\n67Hnd911F++99x579uzxevtr1qwhKiqKFStWjLTEcUfDXalB7KloZFpqLDar9/9VTspKAGB7ab2/\nygopxhi2bdvGvHnzvFo/MzOTp556irIy7+9+ZYzhj3/8I2FhE6ezYuL8pEqNwO7yxmGfGJ2WGgvA\ngSNNwGQ/VBVavO1a6Wm4LfCrr756WOuHAm25KzWAxrZOSutavR4G6ZEYHU5yTDgHqpr9VJlSQ9Nw\nV2oAeyqagOGdTPWYmhqj4a4CSsNdqQF0j5QZZssdYGpKLPurmnxdklJe03BXagC7yxuJDreSkRg1\n7NdOmxRDdXMH9S2dfqhMqaFpuCs1gD0VjcyYHDfoNL8DmZriOqm6/4i23lVgaLgrNYDd5Y3Mmhw7\notdOTXWNi9d+dxUoQ4a7iGSJyHsislNEdojI7f2sc7aI1IvIFvfXPf4pV6mxcaSpnermDmaO4GQq\nQFZSNGEW0X53FTDejHPvAu4wxmwSkTggX0TWGmN29lnvQ2PMJb4vUamxt6fcdTJ1dtrAt9UbjM1q\nISc5mgMa7ipAhmy5G2PKjDGb3N83AruADH8XplQg7XaPlJmZNrJuGYCpqbHaLaMCZlh97iKSCywA\nPu3n6SUislVEXheR8XenAKV62FPRRGK0jVQvbtAxkKmpMRRWt9DlcPqwMqW843W4i0gs8CLwXWNM\n32uFNwHZxph5wO+BlwfYxk0islFENlZVVY20ZqX87tCRZo5LiUFk+CNlPKalxNLhcFJS2+rDylSg\nvP/++4gI27dvD3QpXvEq3EXEhivYnzPGvNT3eWNMgzGmyf39a4BNRI65i60x5nFjTJ4xJm+gu6Uo\nFQyKalrISer/Xp3emjbJPWJGh0OqAPBmtIwAfwR2GWP+d4B10tzrISKnuLdb7ctClRor7V0ODte3\nkp3s/TS//fGMddd+dxUI3rTcTwdWAuf0GOp4kYjcLCI3u9e5EtguIgXAg8AKY4zxU81K+VVJbSvG\nMOqWuz0mHHu0jf0a7l7ZsWMHF1xwAUlJScTExDBnzhwefvhhAF599VXOO+88Jk2aRHx8PIsXL+at\nt97q9fof//jHpKSk8Omnn5KXl0dUVBRnnHEGBw8epLKykssuu4zY2FjmzJnDu+++2+u1ubm53Hnn\nndx///2kpaURGxvLV77yFerrB5+22el08sADDzB9+nQiIiKYOXMmzzzzTK91/v3vf7N06VLi4+OJ\nj4/npJNOYs2aNT54xwY35FBIY8y/gUE7Ho0xDwEP+aoopQKpqLoFgJzk0YU7uEbM6Fh37yxbtow5\nc+bw7LPPEhERwe7du7unAj548CAXXXQRd9xxB1arlddff50LL7yQDz74gNNPP717Gy0tLdx0003c\nfffdxMTE8J3vfIeVK1cSERHBhRdeyC233MIvf/lLvvSlL1FcXEx09NHf8apVq5g+fTpPPPEEZWVl\n3H333Xz9618fNIi//e1v88wzz3DPPfewcOFC1q5dyw033EBycjKXXHIJDQ0NXHLJJSxfvpx77rmn\ne+76uroxuA2jMSYgX4sWLTJKBaM//fuAyfn+P01FQ+uot3XXmi1m0f1rfVDVwHbu3OnT7TkcTlPZ\n0GacTqdPtzuYqqoqA5itW7cOua7D4TCdnZ3m/PPPN9dff3338nvvvdcA5v333+9e9vDDDxvA/OQn\nP+letmPHDgOY1157rXtZTk6OsdvtprGxsXvZs88+a0Sk+/197733DGC2bdtmjDFm7969RkTM008/\n3au+lStXmry8PGOMMRs2bDCAaWhoGM7bMejvFNhovMhYnX5AqT4Ka1qIDreOahikx9TUWI40tdPQ\nNj4mEHM6DVc/8Qmn/fwdVjz+CU7n2PSuJiUlkZWVxc0338zzzz9PZWVlr+dLSkq49tprycjIICws\n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\nSW1L0Lx3avzyRdOqFMjq8TjTvUyFKIfTcPvqzbR0OPjHbWdwQkaC+5kEzp0zmb9vKeX21Vt44PXP\nuGfZ3IDW6nQa9lQ0seKUrKFXDgK5KTE4DRTVtDB90vg4IKng5IuW+yvA19yjZhYD9caYY7pkVOj4\n/bt7+fRgDf992Qk9gv2o5SdlcN2SXJ766CBv7igPQIVHldS20trpYFaQn0z1yNXZIZWPDNlyF5FV\nwNlAioiUAPcCNgBjzKPAa8BFwD6gBbjeX8WqwPvkQDUPvrOXLy7M4IsLMwdc74cXzWZTUS13rilg\nbnp8902gx9puz8nUtPER7lM94a5zzKhRGjLcjTFXD/G8AW71WUUqaLV0dPHd1VvITYnh/uUnDLpu\nRJiVh65eyMW//5A71xSw+qbFiMgYVXqUZ6TMjHHSxZEYHU5itI39VRruanT0ClXltVXriylvaOMX\nV8wjJmLo0zXZydHcef4sPj1Yw8f7q8egwmPtqWgkIzGKuEhbQPY/EjMmxbLXfVBSaqQ03JVX2jod\nPPav/Zw2NZmTc5O8ft2XT85icnwEv317L64PeWNrd3kjs8ZJl4zHrLQ4dlc0BuT9UqFDw115ZU1+\nCZWN7Xz7nOnDel2kzcotZ09n/aEaPj4wtq33ToeTA1XNQX9lal+z0uJpbOvicL1OIKZGTsNdDanT\n4eTR9/ezKMfOadOSh/16T+v9d2/v9UN1AyusbqbD4Rw3Y9w95rg/aewubwhwJWo803BXQ/rbplJK\n61q57ZzpIzopGmmz8q2zpo153/vuctfsiuOt5e4Z2fNZufa7q5HTcFeDcjgNf3h/HydkxHP2zJFf\nVbzilGwmxUXw4Dtj13rfXdGIRWBa6vhqucdH2shIjOKzMg13NXIa7mpQ7++u5FB1C986a2Stdo9I\nm5UbzziOjw9Ud8/S6G97yhvJTYkh0ha8d18ayKy0uDF7n1Ro0nBXg1q1vpiU2AjOP37yqLd1VV4W\n4WEWnv2k0AeVDW1PReO4uTK1r1lpceyvatI5ZtSIabirAZXXt/HuZxVclZeJzTr6PxV7TDjL5k3h\npU0lNLlnkfSXpvYuDlU3j7thkB6z0+Lochq9K5MaMQ13NaAXNhbjNK7RLr6y8rQcmjsc/G1Tic+2\n2Z8tRXU4DSzMtvt1P/4yOy0eQPvd1YhpuKt+OZyG5zcUc8b0FHJ8eO/R+ZkJnJiRwP99UujXi3Ty\n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\nAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x112e634a8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "samples = metropolis(func, Gaussian(mu=np.zeros(1), var=np.ones(1)), n=100, downsample=10)\n",
    "plt.plot(x, func(x), label=r\"$\\tilde{p}(z)$\")\n",
    "plt.hist(samples, normed=True, alpha=0.2)\n",
    "plt.scatter(samples, np.random.normal(scale=.03, size=(100, 1)), s=5, label=\"samples\")\n",
    "plt.legend(fontsize=15)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "### 11.2.2 The Metropolis-Hastings algorithm"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\nl11GbGxs5/3rrrsOYwxbt27tteZ33nkHi8XCddddh91u77xdeumlfPrppzgcDqZOnUpsbCy33HIL\nr7/+emBa7G4a7kr1UFDdTGZi1JAmDOtpSmoMxriGVo4EVU3tbM+vwe40bM+voSpA14G1WCxs2LCB\n9PR0br/9dtLT0zn//PPZuXMnTqeTq6++mn/+85889thjvPvuu2zdupXly5fT2tp9mGlcXBwWy6nP\nLTw8HICEhITTHuv52rS0tG73o6OjiY2N7fNyfidPnsThcDBu3DhsNlvn7Utf+hJ2u53S0lISExPZ\nuHEjHR0d3HjjjaSmpnLFFVdw7Nixob9ZXtLL7CnVQ0FVM9nJwzuY6jHVMztkZROz0uN9sk5/SokN\nZ3FOItvza1ick0hKbHjAtj1r1ixeeeUVOjo6+OCDD/jWt77FFVdcwXvvvcfOnTt56623WLZsWefy\nLS0tPt1+z28Lzc3NNDY2MmHChF6XT0pKIiwsjI8++qjbDsXDs7NYsmQJb7/9Ni0tLfz973/nm9/8\nJrfccgubN2/2af09abgr1UN+VRMLshIGXtALWUmuA3YF1c0+WZ+/iQhr/n0JVU3tpMSG4x4EF1A2\nm41LLrmkMwQ9LeeIiIjOZfLz8/noo4+8vqi2NzZu3EhjY2Nn18xrr72GiJCbm9vr8pdccgkOh4O6\nujouu+yyAdcfFRXFVVddxZ49e3jiiSd8VndfNNyV6qK2uZ36VvuwR8p4jIuyER8ZRmHNyAh3AItF\nSI2LGHhBH9q1axf3338/N910E1OmTKGmpoYf//jHzJ8/nyVLlpCZmcl9993H448/TkNDA4888ggZ\nGb6dBSUqKoorrriCBx54gNLSUh544AGuu+465syZ0+vyM2fO5K677mLFihU8+OCD5Obm0trayt69\nezl06BC/+c1vWL9+Pc8//zzXXnst2dnZFBcX8+tf/7rbMQB/0XBXqgtPC9vT4vaFrKRoCqt924Uw\n2qSnpzN+/Hh+8IMfUFJSQkJCAhdffDE//vGPiYiI4NVXX2XVqlXccMMNZGZm8t3vfpf33nvPp1MB\nrFixgri4OO644w4aGxu5+uqrefrpp/t9zVNPPcWMGTN47rnnePjhh4mPj2fOnDnccccdgOvgrYjw\n0EMPUVFRQWpqKldeeSU//OEPfVZ3X8QEaTh6bm6u2bZtW1C2rVRf/pJXwtfW7OTte8/3WR/5XX/Y\n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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x10c7f2c18>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "samples = metropolis_hastings(func, Gaussian(mu=np.ones(1), var=np.ones(1)), n=100, downsample=10)\n",
    "plt.plot(x, func(x), label=r\"$\\tilde{p}(z)$\")\n",
    "plt.hist(samples, normed=True, alpha=0.2)\n",
    "plt.scatter(samples, np.random.normal(scale=.03, size=(100, 1)), s=5, label=\"samples\")\n",
    "plt.legend(fontsize=15)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "anaconda-cloud": {},
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.0"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 0
}
